home *** CD-ROM | disk | FTP | other *** search
-
- ASSUME CS:CHMODC,DS:CHMODC
- CHMODC SEGMENT PARA PUBLIC 'CODE'
-
- ORG 80H
- FOOSTR EQU THIS BYTE
- ORG 100H
- CHMOD: CLD
- XOR BP,BP
- DEC FOOSTR ; [0080H]
- JL BADPARAM
- MOV CL,FOOSTR ; [0080H]
- XOR CH,CH
- MOV DI,OFFSET FOOSTR[2] ; 0082H
- MOV AL,' '
- REPNZ SCASB
- JNZ BADPARAM
- MOV BYTE PTR [DI-01],00
- MOV BX,DI
- MOV FOOSTR,CL ; [0080H]
- L0122:
- CMP FOOSTR,0 ; BYTE PTR [0080H]
- JLE DOCHMOD
- MOV AL,[BX]
- MOV CX,16
- MOV DI,OFFSET HEXSTR
- REPNZ SCASB
- JNZ BADHEX
- SUB DI,OFFSET HEXSTR + 1
- MOV CX,4
- SHL BP,CL
- ADD BP,DI
- JMP SHORT LOOP1
- BADHEX:
- MOV DX,OFFSET HEXERR
- JMP SHORT WRITESTR
- LOOP1:
- INC BX
- DEC FOOSTR ; BYTE PTR [0080H]
- JMP L0122
- DOCHMOD:
- MOV AX,4301H
- MOV CX,BP
- MOV DX,OFFSET FOOSTR+2 ; 0082H
- INT 21H
- JNB EXIT
- CMP AX,2
- JNZ NOACCESS
- MOV DX,OFFSET FNDERR
- JMP SHORT WRITESTR
- NOACCESS:
- MOV DX,OFFSET ACCERR
- JMP SHORT WRITESTR
- BADPARAM:
- MOV DX,OFFSET PRMERR
- WRITESTR:
- MOV AH,09H
- INT 21H
- EXIT:
- INT 20H
-
- HEXSTR db '0123456789ABCDEF'
- HEXERR db 7,'Illegal HEX character',10,13,'$'
- PRMERR db 7,'Too few parameters',10,13,'$'
- FNDERR db 7,'File not found',10,13,'$'
- ACCERR db 7,'Access denied - probably illegal attribute',10,13,'$'
-
- CHMODC ENDS
- END CHMOD